home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Networking / PGPuam / headers / AppleShareRegistry.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-09-28  |  17.2 KB  |  644 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        AppleShareRegistry.h
  3.  
  4.      Contains:    AppleShareRegistry data types Interfaces. Formerly known as OAM and OAMTypes...
  5.  
  6.      Version:    Technology:    AppleShare IP 6.0
  7.                  Release:    ASIP 6.0 SDK - Friday, July 10, 1998 11:16:11 AM
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __APPLESHAREREGISTRY__
  18. #define __APPLESHAREREGISTRY__
  19.  
  20. #ifndef __MIXEDMODE__
  21. #include <MixedMode.h>
  22. #endif
  23. #ifndef __TYPES__
  24. #include <Types.h>
  25. #endif
  26.  
  27.  
  28.  
  29. #if PRAGMA_ONCE
  30. #pragma once
  31. #endif
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36.  
  37. #if PRAGMA_IMPORT
  38. #pragma import on
  39. #endif
  40.  
  41. #if PRAGMA_STRUCT_ALIGN
  42.     #pragma options align=mac68k
  43. #elif PRAGMA_STRUCT_PACKPUSH
  44.     #pragma pack(push, 2)
  45. #elif PRAGMA_STRUCT_PACK
  46.     #pragma pack(2)
  47. #endif
  48.  
  49.  
  50. enum {
  51.     kOAMMachineShortID            = 0,
  52.     kOAMOwnerShortID            = 1
  53. };
  54.  
  55. /* Object Types & Attribute Signatures*/
  56.  
  57. enum {
  58.     kOAMAnyObjectType            = FOUR_CHAR_CODE('****'),
  59.     kOAMMachine                    = FOUR_CHAR_CODE('mach'),
  60.     kOAMUser                    = FOUR_CHAR_CODE('user'),
  61.     kOAMGroup                    = FOUR_CHAR_CODE('grop'),
  62.     kOAMService                    = FOUR_CHAR_CODE('serv')
  63. };
  64.  
  65. /* Attribute Signatures */
  66.  
  67. enum {
  68.     kOAMBasic                    = FOUR_CHAR_CODE('----'),
  69.     kOAMGestalt                    = FOUR_CHAR_CODE('gest'),
  70.     kOAMClassicFS                = FOUR_CHAR_CODE('clfs')
  71. };
  72.  
  73. /* Attribute Types */
  74.  
  75. enum {
  76.                                                                 /* All Objects */
  77.     kOAMShortID                    = FOUR_CHAR_CODE('shid'),        /* UInt32 */
  78.     kOAMName                    = FOUR_CHAR_CODE('name'),        /* Str31 */
  79.     kOAMInternetName            = FOUR_CHAR_CODE('inam'),        /* Str31 */
  80.     kOAMType                    = FOUR_CHAR_CODE('type'),        /* OSType */
  81.                                                                 /* User Object Attributes */
  82.     kOAMPasswordAttribute        = FOUR_CHAR_CODE('pwd '),        /* char[8] (zero padded) */
  83.     kOAMPasswordLen                = FOUR_CHAR_CODE('pwdL'),        /* UInt8 */
  84.     kOAMUserFlags                = FOUR_CHAR_CODE('flgs'),        /* UInt16 */
  85.     kOAMUserFailedPasswordAttempts = FOUR_CHAR_CODE('blog'),    /* UInt16 */
  86.     kOAMUserPasswordCreationTime = FOUR_CHAR_CODE('pwdD'),        /* UInt32 (set by OAM agent) */
  87.     kOAMUserNumGroups            = FOUR_CHAR_CODE('nmem'),        /* UInt16 (read only) */
  88.     kOAMPrimaryGroup            = FOUR_CHAR_CODE('pgrp'),        /* UGRec (id and name) */
  89.     kOAMDisableDate                = FOUR_CHAR_CODE('disD'),        /* SInt32 */
  90.     kOAMLastLogin                = FOUR_CHAR_CODE('logD'),        /* SInt32 */
  91.     kOAMUserComment                = FOUR_CHAR_CODE('cmnt'),        /* Str197 */
  92.     kOAMUserPhoneRecord            = FOUR_CHAR_CODE('976 '),        /* OAMUserPhoneRecord */
  93.                                                                 /* Service Object Attributes */
  94.     kOAMShortStatus                = FOUR_CHAR_CODE('shst'),        /* UInt32 */
  95.     kOAMServiceFlags            = FOUR_CHAR_CODE('flag'),        /* OAMFlags */
  96.     kOAMServicePSN                = FOUR_CHAR_CODE('psn '),        /* ProcessSerialNumber */
  97.     kOAMServiceFSSpec            = FOUR_CHAR_CODE('fssp'),        /* FSSpec */
  98.     kOAMServiceType                = FOUR_CHAR_CODE('styp'),        /* OSType */
  99.                                                                 /* Machine Object Attributes */
  100.     kOAMGuestProgramLinking        = FOUR_CHAR_CODE('gstl'),        /* SInt16 */
  101.     kOAMNoGuestAccess            = FOUR_CHAR_CODE('gsta'),        /* SInt16 */
  102.     kOAMProgramLinking            = FOUR_CHAR_CODE('prgl'),        /* SInt16 */
  103.     kOAMBoot                    = FOUR_CHAR_CODE('boot'),        /* SInt16 */
  104.     kOAMFileSharingEnabled        = FOUR_CHAR_CODE('fshr'),        /* SInt16 */
  105.     kOAMApple2Mode                = FOUR_CHAR_CODE('apl2'),        /* SInt16 */
  106.     kOAMNoSavePassword            = FOUR_CHAR_CODE('spwd'),        /* SInt16 */
  107.     kOAMMultihoming                = FOUR_CHAR_CODE('mlth'),        /* SInt16 */
  108.     kOAMGuestInited                = FOUR_CHAR_CODE('gsti'),        /* SInt16 */
  109.     kOAMUGInited                = FOUR_CHAR_CODE('ugin'),        /* SInt16 */
  110.     kOAMUGFileVersion            = FOUR_CHAR_CODE('vers'),        /* SInt16 (read only) */
  111.     kOAMServerName                = FOUR_CHAR_CODE('name'),        /* Str32 */
  112.     kOAMDefaultShutdown            = FOUR_CHAR_CODE('smin'),        /* SInt16 */
  113.     kOAMMinPasswordLen            = FOUR_CHAR_CODE('plen'),        /* UInt8 */
  114.     kOAMMaxBadLogins            = FOUR_CHAR_CODE('bmax'),        /* SInt16 */
  115.     kOAMMaxPwdChgTime            = FOUR_CHAR_CODE('pwdc'),        /* SInt16 */
  116.     kOAMLoginDisabledTime        = FOUR_CHAR_CODE('disT'),        /* SInt32 */
  117.     kOAMUniqueID                = FOUR_CHAR_CODE('uniq'),        /* SInt32 */
  118.     kOAMMoreSFlags                = FOUR_CHAR_CODE('msfl'),        /* OAMFlags */
  119.     kOAMOtherFlags                = FOUR_CHAR_CODE('oflg'),        /* OAMFlags */
  120.     kOAMOTPort                    = FOUR_CHAR_CODE('port')        /* SInt16 */
  121. };
  122.  
  123. /* userFlag bits */
  124.  
  125. enum {
  126.     kOAMDefaultNewUserSettings    = 0,
  127.     kOAMIACEnabledMask            = 0x0001,                        /* IAC is enabled for this user */
  128.     kOAMLoginEnabledMask        = 0x0100,                        /* Login is enabled for this user */
  129.     kOAMSuperUserMask            = 0x0200,                        /* This user is a superuser */
  130.     kOAMDisableChangePwdMask    = 0x0400,                        /* User CANNOT change password */
  131.     kOAMGetNewPwdMask            = 0x1000
  132. };
  133.  
  134. /* kShortStatus codes for registered services */
  135.  
  136. enum {
  137.     kOAMServiceNotRunning        = 1,
  138.     kOAMServiceRunning            = 2,
  139.     kOAMServiceStartingUp        = 3,
  140.     kOAMServiceShutingDown        = 4
  141. };
  142.  
  143.  
  144. enum {
  145.     kOAMServiceAutoLaunch        = 0x00000001,                    /* Launch on startup */
  146.     kOAMServiceAutoShutdown        = 0x00000002                    /* Shutdown on quit */
  147. };
  148.  
  149. typedef UInt32                             OAMEventCode;
  150. typedef OSStatus                         OAMStatus;
  151. typedef UInt32                             OAMCallID;
  152. typedef UInt32                             OAMSessionID;
  153. typedef OSType                             OAMType;
  154. typedef OAMType *                        OAMTypePtr;
  155. typedef OSType                             OAMObjectType;
  156. typedef UInt32                             OAMFlags;
  157. typedef UInt32                             OAMShortObjectSpec;
  158. typedef UInt32 *                        OAMShortObjectSpecPtr;
  159.  
  160. enum {
  161.     kOAMOptionFlags                = FOUR_CHAR_CODE('oflg'),
  162.     kOAMOptionThreadBlockCall    = FOUR_CHAR_CODE('tpre'),
  163.     kOAMOptionThreadYieldCall    = FOUR_CHAR_CODE('tpos'),
  164.     kOAMOptionThreadUnblockCall    = FOUR_CHAR_CODE('twak')
  165. };
  166.  
  167.  
  168. enum {
  169.     kOAMOptionThreadMgr            = 1,
  170.     kOAMOptionExternalThreadMgr    = 2
  171. };
  172.  
  173.  
  174. struct OAMOption {
  175.     OSType                             option;
  176.     UInt32                             value;
  177. };
  178. typedef struct OAMOption                OAMOption;
  179.  
  180. enum {
  181.     kOAMLocatorAppletalk        = 0
  182. };
  183.  
  184.  
  185. struct OAMServerLocator {
  186.     UInt16                             specSize;                    /* total size of this locator spec struct */
  187.     UInt32                             protType;                    /* kOAMLocatorAppletalk -> appletalk */
  188.     UInt32                             reserved1;
  189.     UInt32                             reserved2;                    /* probably script */
  190.     Str63                             name;
  191.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  192. };
  193. typedef struct OAMServerLocator            OAMServerLocator;
  194.  
  195. enum {
  196.     kOAMServerAppleTalk            = 0
  197. };
  198.  
  199.  
  200. struct OAMServerSpec {
  201.     UInt16                             specSize;                    /* total size of this server spec struct */
  202.     UInt32                             protType;                    /* kOAMServerAppleTalk -> appletalk */
  203.     UInt32                             reserved1;
  204.     UInt32                             reserved2;
  205.     Str63                             name;
  206.     UInt8                             protSpecific[4];            /* variable size protocol specific part */
  207. };
  208. typedef struct OAMServerSpec            OAMServerSpec;
  209. /* Agent Status */
  210.  
  211. enum {
  212.     kOAMAgentNotInstalled        = 0,
  213.     kOAMAgentNotRunning            = 1,
  214.     kOAMAgentStartingUp            = 2,
  215.     kOAMAgentRunning            = 3,
  216.     kOAMAgentShuttingDown        = 4,
  217.     kOAMAgentNotRunningATTClose    = 5,
  218.     kOAMAgentGenesis            = 6
  219. };
  220.  
  221. /* specType */
  222.  
  223. enum {
  224.     kOAMObjectSpecByShortID        = 1,
  225.     kOAMObjectSpecByNameType    = 2
  226. };
  227.  
  228.  
  229. struct OAMObjectSpec {
  230.     OAMType                         objectType;
  231.     OAMType                         specType;                    /* kOAMObjectSpecByShortID->short id, kOAMObjectSpecByNameType->nametype and others... */
  232.     union {
  233.         OAMShortObjectSpec                 shortID;
  234.         Str31                             name;
  235.         UInt8                             otherTypes[4];
  236.     }                                 u;
  237. };
  238. typedef struct OAMObjectSpec            OAMObjectSpec;
  239. /* keyType */
  240.  
  241. enum {
  242.     kOAMKeyClearText            = 0
  243. };
  244.  
  245.  
  246. struct OAMKey {
  247.     OAMType                         keyType;                    /* kOAMKeyClearText->cleartext password */
  248.     UInt32                             keyBufferLen;
  249.     UInt8                             keyBuffer[8];
  250. };
  251. typedef struct OAMKey                    OAMKey;
  252.  
  253. struct OAMBufferDescriptor {
  254.     void *                            buffer;
  255.     UInt32                             bufferLen;
  256.     UInt32                             actCount;
  257. };
  258. typedef struct OAMBufferDescriptor        OAMBufferDescriptor;
  259.  
  260. struct OAMAttributeDescriptor {
  261.     OAMType                         attributeSignature;
  262.     OAMType                         attributeType;
  263.     OAMBufferDescriptor             bufferDescriptor;
  264.     OSStatus                         status;
  265.     UInt32                             offset;
  266.     UInt32                             actSize;
  267. };
  268. typedef struct OAMAttributeDescriptor    OAMAttributeDescriptor;
  269. /* iterationType */
  270.  
  271. enum {
  272.     kOAMIterObjects                = 1,
  273.     kOAMIterMembers                = 2,
  274.     kOAMIterMemberships            = 3
  275. };
  276.  
  277. /* iterationFlags */
  278.  
  279. enum {
  280.     kOAMIterByIndex                = 1,
  281.     kOAMIterByObject            = 2
  282. };
  283.  
  284.  
  285. union OAMSpecOrIndex {
  286.     OAMObjectSpec *                    startingObject;
  287.     UInt32                             startingIndex;
  288. };
  289. typedef union OAMSpecOrIndex            OAMSpecOrIndex;
  290.  
  291. struct OAMIterationSpec {
  292.     OAMType                         iterationType;
  293.     OAMFlags                         iterationFlags;
  294.     OAMTypePtr                         typeList;
  295.     OAMObjectSpec *                    iterArgument;
  296.     UInt32                             maxToGet;
  297.     OAMSpecOrIndex                     u;
  298.                                                                 /* set by call */
  299.     UInt32                             totalSize;
  300.     UInt32                             lastPosition;
  301.     Boolean                         more;
  302. };
  303. typedef struct OAMIterationSpec            OAMIterationSpec;
  304.  
  305. struct OAMParseInfo {
  306.     UInt32                             reserved[32];
  307. };
  308. typedef struct OAMParseInfo                OAMParseInfo;
  309. /* optionType */
  310.  
  311. enum {
  312.     kOAMNotifyStartOption        = FOUR_CHAR_CODE('nstt'),
  313.     kOAMNotifyStopOption        = FOUR_CHAR_CODE('nstp'),
  314.     kOAMNotifySelfOption        = FOUR_CHAR_CODE('nslf')
  315. };
  316.  
  317. /* notify OAMOptionsFlags */
  318.  
  319. enum {
  320.     kOAMOptionUserData            = 2
  321. };
  322.  
  323. /* notifyID */
  324.  
  325. enum {
  326.     kOAMNotifyNewObject            = 1,
  327.     kOAMNotifyDeleteObject        = 2,
  328.     kOAMNotifyRenameObject        = 3,
  329.     kOAMNotifyAttributeSet        = 4,
  330.     kOAMNotifyMemberAdd            = 5,
  331.     kOAMNotifyMemberRemove        = 6,
  332.     kOAMNotifyLogin                = 7,
  333.     kOAMNotifyAll                = 8,
  334.     kOAMMaxNotify                = kOAMNotifyAll
  335. };
  336.  
  337.  
  338. struct OAMBooleanOption {
  339.     UInt16                             value;
  340. };
  341. typedef struct OAMBooleanOption            OAMBooleanOption;
  342.  
  343. enum {
  344.     kOAMNotifyAllObjects        = -1
  345. };
  346.  
  347.  
  348. struct OAMNotifyOption {
  349.     UInt32                             notifyID;
  350.     UInt32                             objectID;                    /* kOAMNotifyAllObjects -> all objects */
  351. };
  352. typedef struct OAMNotifyOption            OAMNotifyOption;
  353.  
  354. struct OAMNotificationSpec {
  355.     OAMType                         oamType;
  356.     OAMBufferDescriptor             bufferDescriptor;
  357. };
  358. typedef struct OAMNotificationSpec        OAMNotificationSpec;
  359.  
  360. struct OAMNotification {
  361.     UInt16                             version;                    /* 0 */
  362.     OAMSessionID                     sess;
  363.     OAMShortObjectSpec                 objectID;
  364.     UInt32                             notifyID;                    /* notifyID = kOAMNotifyNewObject | kOAMNotifyAttributeSet | .... */
  365.     UInt32                             userData;
  366.     union {
  367.         OAMType                         oamType;
  368.         OAMShortObjectSpec                 member;
  369.     }                                 u;
  370. };
  371. typedef struct OAMNotification            OAMNotification;
  372. /* OAM Notification Support */
  373. typedef CALLBACK_API_C( void , OAMNotificationProcPtr )(OAMNotification *notification);
  374. typedef STACK_UPP_TYPE(OAMNotificationProcPtr)                     OAMNotificationUPP;
  375. enum { uppOAMNotificationProcInfo = 0x000000C1 };                 /* no_return_value Func(4_bytes) */
  376. #define NewOAMNotificationProc(userRoutine)                     (OAMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOAMNotificationProcInfo, GetCurrentArchitecture())
  377. #define CallOAMNotificationProc(userRoutine, notification)         CALL_ONE_PARAMETER_UPP((userRoutine), uppOAMNotificationProcInfo, (notification))
  378. /* session option */
  379.  
  380. enum {
  381.     kOAMOptionMemory            = FOUR_CHAR_CODE(' mem')
  382. };
  383.  
  384. /* authentication flags */
  385.  
  386. enum {
  387.     kOAMAuthLogin                = 0,
  388.     kOAMAuthLoginContinue        = 1,
  389.     kOAMAuthChangeKey            = 2,
  390.     kOAMAuthChangeKeyContinue    = 3
  391. };
  392.  
  393.  
  394. enum {
  395.     kOAMAuthStream                = 1
  396. };
  397.  
  398.  
  399. struct OAMAuthenticateInfo {
  400.     OAMObjectSpec *                    objectSpec;
  401.     UInt16                             flags;
  402.     UInt16                             stage;                        /* intialial set to zero */
  403.     OAMStatus                         objStatus;
  404.     UInt8                             uam[64];
  405.     UInt8                             reserved[64];
  406. };
  407. typedef struct OAMAuthenticateInfo        OAMAuthenticateInfo;
  408.  
  409. typedef unsigned char                     OAMCallNumber[128];
  410. /* bits for phoneFlags */
  411.  
  412. enum {
  413.     kOAMLoginBit                = 0,
  414.     kOAMCallbackBit                = 1
  415. };
  416.  
  417.  
  418. struct OAMUserPhoneRecord {
  419.     SInt16                             phoneFlags;
  420.     SInt16                             retryCount;
  421.     OAMCallNumber                     callNum;                    /* callback number*/
  422. };
  423. typedef struct OAMUserPhoneRecord        OAMUserPhoneRecord;
  424. /* Error Codes */
  425.  
  426. enum {
  427.                                                                 /* General */
  428.     kOAMInitializationErr        = -29300,
  429.     kOAMParameterErr            = -29301,
  430.     kOAMGeneralErr                = -29302,                        /* Objects */
  431.     kOAMObjectNotFoundErr        = -29310,
  432.     kOAMContainerObjectNotFoundErr = -29311,
  433.     kOAMMemberObjectNotFoundErr    = -29312,
  434.     kOAMDuplicateObjectErr        = -29320,
  435.     kOAMMaximumObjectsErr        = -29330,
  436.     kOAMMaximumMemberObjectsErr    = -29331,                        /* Attributes */
  437.     kOAMAttributeNotFoundErr    = -29340,
  438.     kOAMAttributeReadOnlyErr    = -29341,
  439.     kOAMAttributeReadWriteOnlyErr = -29342,
  440.     kOAMAttributeBufferTooSmallErr = -29343,
  441.     kOAMAttributeBufferTooLargeErr = -29344,
  442.     kOAMMaximumAttributesErr    = -29345,                        /* Buffers */
  443.     kOAMBufferTooSmallErr        = -29350,
  444.     kOAMBufferTooLargeErr        = -29351,                        /* Authentication */
  445.     kOAMAuthenticationErr        = -29360,
  446.     kOAMAuthenticationInProgressErr = -29361,
  447.     kOAMLoginDisabledErr        = -29362,
  448.     kOAMAuthenticationServerErr    = -29363,
  449.     kOAMUAMNotFoundErr            = -29364,
  450.     kOAMAdminDisabledErr        = -29365,                        /* Password */
  451.     kOAMPasswordNeedsChangeErr    = -29370,
  452.     kOAMPasswordExpiredErr        = -29371,
  453.     kOAMPasswordMinimumLenErr    = -29372,
  454.     kOAMSamePasswordErr            = -29373,
  455.     kOAMPasswordChangeDisabledErr = -29374,                        /* Session */
  456.     kOAMServerNotFoundErr        = -29380,
  457.     kOAMServerNotInstalledErr    = -29381,
  458.     kOAMServerNotReadyErr        = -29382,
  459.     kOAMNoMachineNameErr        = -29383,
  460.     kOAMRequestTooLargeErr        = -29384,
  461.     kOAMNetworkErr                = -29385,
  462.     kOAMSessionIDErr            = -29386,
  463.     kOAMMaximumSessionsErr        = -29387
  464. };
  465.  
  466.  
  467. enum {
  468.     kOAMParseDone                = 99
  469. };
  470.  
  471. EXTERN_API_C( OAMStatus )
  472. OAMInitialize                    (UInt32                 numSessions,
  473.                                  UInt32                 maxNumCalls,
  474.                                  OAMBufferDescriptor *    buffer_i,
  475.                                  OAMOption *            flags_i);
  476.  
  477.  
  478. EXTERN_API_C( OAMStatus )
  479. OAMDeInitialize                    (void);
  480.  
  481. EXTERN_API_C( OAMStatus )
  482. OAMFindServer                    (OAMServerLocator *        locator_i,
  483.                                  OAMBufferDescriptor *    buffer_o,
  484.                                  UInt32 *                numInBuffer_o,
  485.                                  UInt32 *                numFound_o,
  486.                                  OAMOption *            options);
  487.  
  488.  
  489. EXTERN_API_C( OAMStatus )
  490. OAMFindServerExtract            (OAMBufferDescriptor *    buffer_i,
  491.                                  UInt32                 index_i,
  492.                                  OAMServerSpec *        spec_o);
  493.  
  494.  
  495. EXTERN_API_C( UInt32 )
  496. OAMGetSize                        (UInt32                 numSessions,
  497.                                  UInt32                 maxNumCalls);
  498.  
  499. EXTERN_API_C( OAMStatus )
  500. OAMGetLocalServerStatus            (UInt32 *                serverStatus);
  501.  
  502. EXTERN_API_C( OAMStatus )
  503. OAMOpenSession                    (OAMServerSpec *        server_i,
  504.                                  OAMSessionID *            sessID_o,
  505.                                  OAMOption *            options);
  506.  
  507. EXTERN_API_C( OAMStatus )
  508. OAMCloseSession                    (OAMSessionID             sessID_o,
  509.                                  OAMOption *            options);
  510.  
  511. EXTERN_API_C( OAMStatus )
  512. OAMAuthenticateSession            (OAMSessionID             sessID,
  513.                                  OAMObjectSpec *        user,
  514.                                  OAMKey *                key,
  515.                                  OAMOption *            options);
  516.  
  517. EXTERN_API_C( OAMStatus )
  518. OAMCreateObject                    (OAMSessionID             sessID,
  519.                                  OAMObjectSpec *        object,
  520.                                  OAMAttributeDescriptor * attr,
  521.                                  OAMOption *            options);
  522.  
  523. EXTERN_API_C( OAMStatus )
  524. OAMDeleteObject                    (OAMSessionID             sessID,
  525.                                  OAMObjectSpec *        object,
  526.                                  OAMOption *            options);
  527.  
  528. EXTERN_API_C( OAMStatus )
  529. OAMGetAttribute                    (OAMSessionID             sessID,
  530.                                  OAMObjectSpec *        object,
  531.                                  OAMAttributeDescriptor * attr,
  532.                                  OAMOption *            options);
  533.  
  534. EXTERN_API_C( OAMStatus )
  535. OAMSetAttribute                    (OAMSessionID             sessID,
  536.                                  OAMObjectSpec *        key,
  537.                                  OAMAttributeDescriptor * attr,
  538.                                  OAMOption *            options);
  539.  
  540. EXTERN_API_C( OAMStatus )
  541. OAMDeleteAttribute                (OAMSessionID             sessID,
  542.                                  OAMObjectSpec *        object,
  543.                                  OAMAttributeDescriptor * attr,
  544.                                  OAMOption *            options);
  545.  
  546. EXTERN_API_C( OAMStatus )
  547. OAMIsGroupMember                (OAMSessionID             sessID,
  548.                                  OAMObjectSpec *        group,
  549.                                  OAMObjectSpec *        member,
  550.                                  Boolean *                isMember,
  551.                                  OAMOption *            options);
  552.  
  553. EXTERN_API_C( OAMStatus )
  554. OAMAddGroupMember                (OAMSessionID             sessID,
  555.                                  OAMObjectSpec *        group,
  556.                                  OAMObjectSpec *        newMember,
  557.                                  OAMOption *            options);
  558.  
  559. EXTERN_API_C( OAMStatus )
  560. OAMRemoveGroupMember            (OAMSessionID             sessID,
  561.                                  OAMObjectSpec *        group,
  562.                                  OAMObjectSpec *        oldMember,
  563.                                  OAMOption *            options);
  564.  
  565. EXTERN_API_C( OAMStatus )
  566. OAMIterate                        (OAMSessionID             sessID,
  567.                                  OAMIterationSpec *        iterSpec,
  568.                                  OAMAttributeDescriptor * desc,
  569.                                  OAMBufferDescriptor *    buffer,
  570.                                  OAMOption *            options);
  571.  
  572. EXTERN_API_C( OAMStatus )
  573. OAMParseAttributeBuffer            (OAMBufferDescriptor *    buffer,
  574.                                  OAMAttributeDescriptor * desc,
  575.                                  OAMParseInfo *            parseInfo);
  576.  
  577. EXTERN_API_C( OAMStatus )
  578. OAMParseGetNextObject            (OAMParseInfo *            parseInfo,
  579.                                  OAMObjectSpec *        object);
  580.  
  581. EXTERN_API_C( OAMStatus )
  582. OAMParseGetNextAttribute        (OAMParseInfo *            parseInfo,
  583.                                  OAMAttributeDescriptor * attr);
  584.  
  585. EXTERN_API_C( OAMStatus )
  586. OAMSetNotificationProc            (OAMSessionID             sessID,
  587.                                  OAMNotificationUPP     procPtr,
  588.                                  OAMOption *            options);
  589.  
  590. EXTERN_API_C( OAMStatus )
  591. OAMRequestNotification            (OAMSessionID             sessionID,
  592.                                  OAMNotificationSpec *    notificationSpec,
  593.                                  OAMOption *            options);
  594.  
  595. EXTERN_API_C( OAMStatus )
  596. OAMBecomeHelperThread            (void);
  597.  
  598. EXTERN_API_C( OAMStatus )
  599. OAMStartService                    (OAMSessionID             sessID,
  600.                                  OAMObjectSpec *        objectSpec,
  601.                                  OAMOption *            options);
  602.  
  603. EXTERN_API_C( OAMStatus )
  604. OAMStopService                    (OAMSessionID             sessID,
  605.                                  OAMObjectSpec *        objectSpec,
  606.                                  OAMOption *            options);
  607.  
  608. EXTERN_API_C( OAMStatus )
  609. OAMAuthenticateObject            (OAMSessionID             sessID,
  610.                                  OAMAuthenticateInfo *    authInfo,
  611.                                  OAMBufferDescriptor *    inDescriptor,
  612.                                  OAMBufferDescriptor *    outDescriptor,
  613.                                  OAMOption *            options);
  614.  
  615. EXTERN_API_C( OAMStatus )
  616. OAMChangeObjectKey                (OAMSessionID             sessID,
  617.                                  OAMAuthenticateInfo *    authInfo,
  618.                                  OAMBufferDescriptor *    inDescriptor,
  619.                                  OAMBufferDescriptor *    outDescriptor,
  620.                                  OAMOption *            options);
  621.  
  622.  
  623.  
  624. #if PRAGMA_STRUCT_ALIGN
  625.     #pragma options align=reset
  626. #elif PRAGMA_STRUCT_PACKPUSH
  627.     #pragma pack(pop)
  628. #elif PRAGMA_STRUCT_PACK
  629.     #pragma pack()
  630. #endif
  631.  
  632. #ifdef PRAGMA_IMPORT_OFF
  633. #pragma import off
  634. #elif PRAGMA_IMPORT
  635. #pragma import reset
  636. #endif
  637.  
  638. #ifdef __cplusplus
  639. }
  640. #endif
  641.  
  642. #endif /* __APPLESHAREREGISTRY__ */
  643.  
  644.